﻿/*
Copyright (c) 2011 Vratislav Cermak (vratacermak@gmail.com)
 
This file is part of TeachMe Project. See http://code.google.com/p/teach-me for more information.
 
TeachMe is an open source project. Using of TeachMe is free of charge.
It is distributed under GNU General Public License version 3 (GPLv3).
GPLv3 can be found at http://www.gnu.org/licenses/gpl.html.
 
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.  See the license for more details.
*/

using System;
using System.Windows.Forms;

namespace TeachMe.Application
{
    static class Extensions
    {
        public static void CheckValue<T>(this T value) where T : struct
        {
            if (!Enum.IsDefined(typeof(T), value))
            {
                throw new ArgumentOutOfRangeException();
            }
        }

        public static int SafeCompareTo(this string first, string other, int balance)
        {
            if (first == null && first == other)
            {
                return 0;
            }
            if (first == null)
            {
                return -1 * balance;
            }
            if (other == null)
            {
                return 1 * balance;
            }
            return first.CompareTo(other) * balance;
        }
    }
}
